#pragma once

// 支持的所有语言
// 参考 JNOJ 判题机

enum Language { LANG_CPP = 1, LANG_JAVA, LANG_PYTHON };

struct language {
  const char name[10];          // 语言名字
  const char* compile_cmd[20];  // 编译命令
  const char* run_cmd[20];      // 运行命令
  const char file_ext[10];      // 文件后缀
};

struct language languages[] = {
    // 0 号语言保留不用
    {
        "undefined", 
        {nullptr},
        {nullptr},
        "null"
    },
    {
        "c++",
        {"g++",        "-fno-asm", "-O2",  "-w",       "-lm",  "--static",
                             "-std=c++11", "-o",       "Main", "Main.cpp", nullptr},
        {"./Main", nullptr},
        "cpp"
	},
    {
        "java",
        {"javac", "-J-Xms64M", "-J-Xmx128M",
         "-encoding", "UTF-8", "Main.java", nullptr},
        {"java", "-Xms128M", "-Xmx256M", "Main", nullptr},
        "java"
    },
    {
        "python",
        {"python3", "-c",
         "import py_compile; py_compile.compile(r'Main.py')", nullptr},
        {"python3", "Main.py", nullptr},
        "py"
    }
};

